package org.anlu.repo.model;

import com.google.common.reflect.TypeToken;

import java.lang.reflect.Type;

public  class Foo<A,B> {
    Class<? super A> getClassA() {
        return new TypeToken<A>(getClass()) {}.getRawType();
    }

    Class<? super B> getClassB() {
        return new TypeToken<B>(getClass()) {}.getRawType();
    }

    Class<? super A[]> getArrayClassA() {
        return new TypeToken<A[]>(getClass()) {}.getRawType();
    }

    Type getArrayTypeA() {
        return new TypeToken<A[]>(getClass()) {}.getType();
    }

    Class<? super B[]> getArrayClassB() {
        return new TypeToken<B[]>(getClass()) {
        }.getRawType();
    }
}
